const mysql = require("mysql");

// 数据模型基类
// 封转数据库操作
module.exports = class Model {
  // 连接对象
  static conn = null;
  // 数据库连接
  static connection() {
    Model.conn = mysql.createConnection({
      host: "localhost",
      user: "root",
      password: "root",
      database: "myblog",
    });
    Model.conn.connect((err) => {
      if (err) {
        console.log("数据库连接失败");
      }
    });
  }
  // 关闭数据库连接
  static end() {
    if (null != Model.conn) {
      Model.conn.end();
    }
  }
  //   通用查询语句
  /** 
   * @param {string} sql 要执行的sql语句
     @param {Array} params 给SQL语句的展位符进行赋值的参数数组
     */

  static query(sql, params = []) {
    return new Promise((resolve, reject) => {
      this.connection();
      Model.conn.query(sql, params, (err, result) => {
        if (err) {
          reject(err);
        } else {
          resolve(result);
        }
      });
      this.end();
    });
  }
};
